<template>
  <div class="form-div" style="margin: 10px; padding: 5px; background: white;min-height: 800px">
    <a-table
        :columns="ScheduleColumns"
        :dataSource="tableDataSource"
        bordered
    >
      <template #bodyCell="{column,record}">
          <template v-if="column.key!='weekday'&&column.key!='labType'&&column.key!='labNumber'">
              <div v-text="record[column.dataIndex]" style="white-space: pre-wrap;"></div>
          </template>
      </template>
    </a-table>
  </div>
</template>

<script setup lang="ts">
import {ref, onMounted, reactive} from "vue";
import {FormScheduleList} from "@/views/labSchedule/labSchedule.api";
import {message} from "ant-design-vue";

const ScheduleColumns = [
    {
        title: ' ',
        dataIndex: 'weekdayDict',
        key: 'weekday',
        customCell: (record, rowIndex) => {
            return {rowSpan: record.weekRowSpan}
        },
        width: 100

    },
    {
        title: '实验室',
        dataIndex: 'labTypeDict',
        key: 'labType',
        width: 200,
        align: 'center',
        customCell: (record, rowIndex) => {
            return {rowSpan: record.labTypeRowSpan}
        }
    },
    {
        title: '机房',
        dataIndex: 'labNumber',
        key: 'labNumber',
        align: 'center',
        width: 100
    },
    {
        title: '1-2',
        dataIndex: 'scheduleA',
        align:'center',
        width:300,
        key: '1-2',
    },
    {
        title: '3-5',
        dataIndex: 'scheduleB',
        align:'center',
        width:300,
        key: '3-5',
    },
    {
        title: '6-7',
        dataIndex: 'scheduleC',
        align:'center',
        width:300,
        key: '6-7',
    },
    {
        title: '8-9',
        dataIndex: 'scheduleD',
        align:'center',
        width:300,
        key: '8-9',
    },
    {
        title: '10-12',
        dataIndex: 'scheduleE',
        width:300,
        align: 'center',
        key: '10-12',
    },
    {
        title: '13-15',
        dataIndex: 'scheduleF',
        width:300,
        align: 'center',
        key: '13-15',
    },
];


// 假设这是你的数据源，它已经被预处理过了，包含了合并信息
const tableDataSource=reactive([])
// const tableDataSource = ref([
//     {
//         weekday:"星期一",
//         weekRowSpan:4,
//       labType:'软件实验室',
//         labTypeRowSpan:3,
//         labNumber:'732',
//         //所有的schedule_x都需要重新发送请求查询
//         schedule_1:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//         schedule_3:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//     },
//     {
//         weekday:"星期一",
//         weekRowSpan:0,
//         labType:'软件实验室',
//         labTypeRowSpan:0,
//         labNumber:'734',
//         //所有的schedule_x都需要重新发送请求查询
//         schedule_1:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//         schedule_3:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//     },
//     {
//         weekday:"星期一",
//         weekRowSpan:0,
//         labType:'软件实验室',
//         labTypeRowSpan:0,
//         labNumber:'736',
//         //所有的schedule_x都需要重新发送请求查询
//         schedule_1:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//         schedule_3:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//     },
//     {
//         weekday:"星期一",
//         labType:'计算机软件实验',
//         weekRowSpan:0,
//         labNumber:'704',
//         //所有的schedule_x都需要重新发送请求查询
//         schedule_1:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//         schedule_3:"课程：汇编语言\n教师：张三\n班级：21级软件工程\n周次：5-12",
//     },
//
// ]);

const reLordData=async ()=>{
    try{
        const {code,message:resultMessage,data:formScheduleList} = await FormScheduleList()
        if(code==200){
            tableDataSource.length=0
            formScheduleList.forEach((formScheduleItem)=>{
                tableDataSource.push(formScheduleItem)
            })
        }else{
            message.error("查询课表失败")
        }

    }catch (e){
        message.error("查询课表失败")
    }
}
onMounted(async ()=>{
    await reLordData()
})

</script>